/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Toepen.LoungeFacade;

import java.rmi.Remote;
import java.rmi.RemoteException;
import javax.security.auth.login.LoginException;

/**
 * Interface voor de LoungeFacade klasse
 * @author Bart Piggen
 */
public interface ILoungeFacade extends Remote {
    public FacadeGebruiker login(String naam, String wachtwoord) throws RemoteException, LoginException;
    //public LoungeSpel getSpel() throws RemoteException;
    /*public LoungeSpel[] getSpellen() throws RemoteException;*/

    public void addObserver(ILoungeObserver observer, FacadeGebruiker gebruiker) throws RemoteException;

    public void maakSpelAan(String host, String text, int aantalSpelers, FacadeGebruiker spelStarter, boolean enableBlindKloppen, boolean enableKansOpToep, boolean enableKoningsToepen, boolean enableVijfKruizen, boolean enableVuileWas) throws RemoteException;
    public void joinSpel(LoungeSpel spel, FacadeGebruiker gebruiker) throws RemoteException;
    public void startSpel(LoungeSpel spel) throws RemoteException;
    public void stopSpel(LoungeSpel spel) throws RemoteException;

    public boolean registreerGebruiker(String naam, String gebruikersnaam, String wachtwoord) throws RemoteException;
    public void removeObserver(FacadeGebruiker gebruiker) throws RemoteException;
}
